package main

import (
	"fmt"
)

type Father struct{
	
}

type Mother struct{
	
}

type Child struct{
	Father
	Mother
	doll string
}

func (f *Father)Fix(){
	fmt.Println("Father is fixing")
}

func (f *Father)Cook(){
	fmt.Println("Father is cooking")
}

func (m *Mother)Sing(){
	fmt.Println("Monther is singing")
}

func (f *Mother)Cook(){
	fmt.Println("Mother is cooking")
}

func (c *Child)Sing(){
	fmt.Println("Child is singing")
}

func (c *Child)Fix(thing string){
	fmt.Println("Child is fixing ",thing)
}

func main(){
	ch:=new(Child)
	ch.Sing()
//	ch.Fix() //error: not enough arguments in call to ch.Fix
	ch.Fix("car")
//	ch.Cook() //error: ambiguous selector ch.Cook
	ch.Father.Cook()
	ch.Mother.Cook()
}